Cloud computing is internet-based computing, whereby shared resources, software and information are provided to computers and other devices on-demand, like a public utility.
Software as a service (SaaS) is a model of software deployment over the internet. With SaaS, a provider licenses an application to customers for use as a service on demand. According to the SAAS model: 1—The application is hosted in an Internet data center and not on the customer's premise; and 2—Multi-tenant in that multiple customers are served simultaneously in one instance of the application. Its advantages include saving money by not having to purchase servers or other software to support use (everything runs from the browser); flexibility; scalability etc. Its shortcomings include the dependency on an internet connection, security concerns, lack of features etc.
The alternative to SAAS is desktop software, one complete software application license per device/machine.
Another model is known as the Client-Server model. The client-server characteristic describes the relationship of cooperating programs in an application. The server component provides a function or service to one or many clients, which initiate requests for such services. In this circumstance, data is stored on a server, there is ease of maintenance (software updates, data backup) and controlled access with appropriate permissions. Furthermore, simultaneous requests can overload the server.
In the peer-to-peer model, each host or instance of the program can simultaneously act as both a client and a server, and each has equivalent responsibilities and status.
In the Caching model, a component that improves performance by transparently storing data such that future requests for that data can be served faster. Hardware implements cache as a block of memory for temporary storage of data likely to be used again. CPUs and hard drives frequently use a cache, as do web browsers and web servers. To be cost efficient and to enable an efficient lookup of data, caches are comparably small. Nevertheless, caches have proven extremely effective in many areas of computing because access patterns in typical computer applications have locality of reference. References exhibit temporal locality if data is requested again that has been recently requested already. References exhibit spatial locality if data is requested that is physically stored close to data that has been requested already.
The Peer-to-peer (P2P) Caching is yet a further model. P2P caching involves creating a cache—or temporary storage space—for P2P data, using specialized communications hardware, disk storage and associated software. This cache is placed in the ISP's network, either co-located with the Internet transit links or placed at key aggregation points or at each cable head-end. Once a P2P cache is established, the network will transparently redirect P2P traffic to the cache, which either serves the file directly or passes the request on to a remote P2P user and simultaneously caches that data for the next user.